#include "table.h"

/**
 * 直接选择排序
 * @param {table} *tab          待排序表
 * @return {void}
 */
void simpleselectsort(table *tab)
{
    int i, j, k;
    for (i = 1; i <= tab->length; i++)
    {
        k = i;
        for (j = i + 1; j <= tab->length; j++)
        {
            if (tab->r[j].key < tab->r[k].key)
            {
                k = j;
            }
        }
        if (k != i)
        {
            tab->r[0] = tab->r[i];
            tab->r[i] = tab->r[k];
            tab->r[k] = tab->r[0];
        }
    }

}

int main()
{
    table tab;
    int i;
    keytype a[] = {9, 8, 7, 6, 5, 4, 3, 2, 1};
    tab.length = sizeof(a) / sizeof(a[0]) - 1;
    for (i = 1; i <= tab.length; i++)
    {
        tab.r[i].key = a[i - 1];
    }
    simpleselectsort(&tab);
    for (i = 1; i <= tab.length; i++)
    {
        printf("%d ", tab.r[i].key);
    }
    return 0;
}